#include <stdio.h>
#include <string.h>
#include "types.h"
#include "io.h"
#include "f1c100s/reg-gpio.h"

#define TEST_W 480
#define TEST_L 272
void sys_clock_init(void);
void sys_dram_init(void);
void sys_uart_init(void);
void sys_mmu_init(void);
void sys_tcon_init(void);

static void __delay(volatile u32_t loop)
{
	for(; loop > 0; loop--);
}

void udelay(u32_t us)
{
	__delay(us * 2);
}

void mdelay(u32_t ms)
{
	udelay(ms * 1000);
}

void test_lcd(void)
{
	u32_t i,j;
	int w,l;
	w=TEST_W;
	l=TEST_L/8;
	for(i=0; i<l*w; i++) ((u32_t *)0x80000000)[i] = 0;
	for(; i<2*l*w; i++) ((u32_t *)0x80000000)[i] = 0x00FFFFFF;
	for(; i<3*l*w; i++) ((u32_t *)0x80000000)[i] = 0x000000FF;
	for(; i<4*l*w; i++) ((u32_t *)0x80000000)[i] = 0x0000FF00;
	for(; i<5*l*w; i++) ((u32_t *)0x80000000)[i] = 0x00FF0000;
	for(; i<6*l*w; i++) ((u32_t *)0x80000000)[i] = 0x0000FFFF;
	for(; i<7*l*w; i++) ((u32_t *)0x80000000)[i] = 0x00FFFF00;
	for(; i<8*l*w; i++) ((u32_t *)0x80000000)[i] = 0x00FF00FF;
}

int main(int argc, char *argv[])
{
	char d;
	sys_clock_init();
	sys_dram_init();
	sys_uart_init();
	sys_mmu_init();
	sys_tcon_init();

	GPIOA->CFG[0]=0x00001111;//输出  
	GPIOA->DATA=  0x00000000;


	test_lcd();
	
	printf("Hello!lichee nano\r\n");
	
	while(1)
	{
		GPIOA->DATA=  0x00000000;
		mdelay(1000);
		GPIOA->DATA=  0x00000001;
		printf("Hello!lichee nano %d\r\n",d);
		d++;
		mdelay(1000);
	}
}
